Skip to content

feat: *NIX alignment, forced update (fu), version switching, db backup#4

Open
DaFa66 wants to merge 20 commits into
getphporg:mainfrom
DaFa66:main
Open

feat: *NIX alignment, forced update (fu), version switching, db backup#4
DaFa66 wants to merge 20 commits into
getphporg:mainfrom
DaFa66:main

Conversation

@DaFa66

@DaFa66 DaFa66 commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

*NIX script alignment

  • Install path moved from c:\webstack to %USERPROFILE%\getphp (e.g. C:\Users<you>\getphp) — aligns with the Unix/Mac getphp.sh convention of ~/getphp
  • Log files centralised to %USERPROFILE%\getphp\logs\ — Apache, PHP, and MariaDB logs now share a single directory

Forced Update & Version Switching

  • Hidden fu command — offline forced update with interactive version selection per component
  • Switch between any cached versions in %TEMP%\webstack_downloads — upgrades, downgrades, or snapshots
  • Color-coded tags: (current) green, (newer) yellow, (older) dark gray
  • Version normalization for snapshot filenames (e.g. 6.0+snapshot6.0.0)
  • Cached version summary with aligned pipes

MariaDB Database Safety

  • Automatic backup/restore during MariaDB updates (both u and fu)
  • Separate data_backup_update directory — won't collide with delete-command backups

Extraction & Progress

  • Progress suppression across all extraction paths — no more "Removed 4909 of 4846 files" noise
  • Start-Sleep after stopping services to release file handles
  • Dynamic ICU DLL discovery — works with any PHP version's bundled ICU

Code Quality

  • DRY helpers: Backup-MariaDbData, Restore-MariaDbData, Save-PostUpdateConfig
  • PATH entries preserved from existing config during updates (no redundant registry writes)
  • Bumped to v1.0.5

Original Features (from previous push)

  • Home-directory install path (%USERPROFILE%\getphp)
  • Offline mode (-Offline), download caching, phpMyAdmin offline support
  • Sodium extension, service registration deduplication, VC++ redist fixes

— assisted by Hymie (DaFa's AI)

DaFa66 added 20 commits June 13, 2026 12:19
- Add pinned fallback URLs for Apache Lounge & phpMyAdmin when live
  HTML scraping fails (page restructures, server downtime)
- Replace MariaDB HttpWebRequest redirect chain with native
  Invoke-WebRequest -MaximumRedirection 0 (no namespace risk)
- Add 3x retry loop to VC++ Redistributable direct download
- Add -Offline switch: skip URL resolution and use pre-downloaded
  zips from $TEMP_DOWNLOADS
- New Invoke-ExtractZip helper for offline extraction

— assisted by Hymie (DaFa's AI)
- MariaDB: construct direct archive URL instead of REST API redirector
- MariaDB: add fallback to FALLBACK_URLS when REST API resolution fails
- MariaDB: write my.ini with log-error path to logs/ directory
- MariaDB: fix --log-error not taking effect (remove --console from Start-Process)
- Download: remove broken manual redirect loop; use standard Invoke-WebRequest
- Install: skip re-download when components already at latest version
- Install: change default path from %APPDATA% to %USERPROFILE%
- Install: move 'Installation Complete!' banner after services + phpMyAdmin storage
- Logs: consolidate Apache/PHP/MariaDB logs into logs/ directory
- UX: add getPHP ASCII banner at script start (shared with dashboard)
- UX: add completion banner to delete flow
- UX: spacing and progress message improvements
- Docs: update README_Win.md with new paths, logs, and MariaDB changes
- Keep zips after extraction instead of deleting them
- Check for matching cached zip before downloading (version-specific filenames)
- Benefits offline mode and speeds up re-installs
…n fixes

- Add hidden 'fu' command: offline forced update with interactive
  version selection per component (newer/older/current tags)
- Get-VersionFromZipName helper with 3-part version normalization
- MariaDB database backup/restore during updates (u and fu)
- DRY helpers: Backup-MariaDbData, Restore-MariaDbData,
  Save-PostUpdateConfig
- phpMyAdmin regex: handle +snapshot filenames
- Progress suppression across all extraction paths
- Invoke-CopyPhpDlls: dynamic ICU DLL discovery
- PATH entries preserved from existing config during updates
- Start-Sleep after stopping services to release file handles
- Pipe alignment and UI cleanup in version summary

— assisted by Hymie (DaFa's AI)
— assisted by Hymie (DaFa's AI)
@DaFa66 DaFa66 changed the title feat: home-directory install path, offline mode, caching, and fixes feat: forced update (fu), version switching, db backup, extraction fixes Jun 15, 2026
@DaFa66 DaFa66 changed the title feat: forced update (fu), version switching, db backup, extraction fixes feat: *NIX alignment, forced update (fu), version switching, db backup Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant